/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.client.assembler.input;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import fr.generali.accueilclient.client.om.IClientConsultation;
import fr.generali.accueilclient.utils.stringbuilder.StringBuilderUtils;
import fr.generali.refservcommuns.rce.consultpersonnesimple.ArrayOfString;
import fr.generali.refservcommuns.rce.consultpersonnesimple.ConsulterPersonneSimple;

/**
 * Transforme un {@link IClientConsultation} en {@link ConsulterPersonneSimple}
 * 
 * @author selrhazala
 */
@Component("clientConsultation2ConsulterPersonneSimpleConverter")
public class ClientConsultation2ConsulterPersonneSimpleConverter extends VisibiliteBuilder implements
    Converter<IClientConsultation, ConsulterPersonneSimple> {

    /**
     * LOGGER
     */
    private static final Logger LOGGER =
                    LoggerFactory.getLogger(ClientConsultation2ConsulterPersonneSimpleConverter.class);
    
    /**
     * {@inheritDoc}
     */
    public ConsulterPersonneSimple convert(IClientConsultation input) {
        LOGGER.info("assemble");
        ConsulterPersonneSimple consulterPersonneSimple = new ConsulterPersonneSimple();
        ArrayOfString listeIdentifiants = new ArrayOfString();
        listeIdentifiants.getString().add(input.getNumeroClient());
        consulterPersonneSimple.setListeIDs(listeIdentifiants);

        // Visibilité
        consulterPersonneSimple.setDtoContexteVisibilite(buildVisibilite(input.getUserInfo(), input
                        .getListeCodeIntermediaire()));
//        consulterPersonneSimple.setDtoContexteVisibilite(new DtoContexteVisibilite());
        consulterPersonneSimple.setTopHistorique(StringBuilderUtils.NON);
        consulterPersonneSimple.setIsIdClientAgent(StringUtils.EMPTY);

        return consulterPersonneSimple;
    }
}
